#ifndef TESTER_RESULT_H_
#define TESTER_RESULT_H_

#include <cassert>

#include <ostream>
#include <list>

namespace Tester {

   class Result {
      public:
         virtual void initTestCase(const char *name, const char *file = 0) = 0;

         virtual void unexpected(const char *nameMethod, unsigned int count, 
               const char *what = 0) = 0;

         virtual void fail(const char *nameMethod, unsigned int count,
                  const char *typeFail, int line = -1) = 0;

         virtual void pass(const char *nameMethod) = 0;

         virtual void 
            error(const char *nameMethod, const char *nameStage, const char *what=0) = 0;

         virtual void finishTestCase(unsigned int numTests) = 0;

         virtual ~Result() {}
   };
}
#endif
